#ifndef _core_switch_case_hpp_
#define _core_switch_case_hpp_

/** \file case.hpp
 *  \author Adrian Schweizer
 *  \created  $Mo 11 Feb 08:33:01 pm CET 2008 schwadri@SchwadriLaptop.local$
 *  \modified $Mo 11 Feb 08:34:30 pm CET 2008 schwadri@SchwadriLaptop.local$
 */

#include <boost/mpl/void.hpp>
#include <boost/mpl/vector_c.hpp>

#include "case_sequence.hpp"

namespace core {

    template <typename Key, typename Functor>
        case_sequence<boost::mpl::vector1<Key>,Functor>  case_(const Functor& functor)
        {
            return case_sequence<boost::mpl::vector1<Key>,Functor>(functor);
        }

    template <std::size_t Key, typename Functor>
        case_sequence<boost::mpl::vector1_c<std::size_t,Key>,Functor>  case_c(const Functor& functor)
        {
            return case_sequence<boost::mpl::vector1_c<std::size_t,Key>,Functor>(functor);
        }

} // namespace core

#endif // _core_switch_case_hpp_
